package com.yelink.metrics.api;

import com.yelink.metrics.api.dto.MetricsUpsertDTO;
import com.yelink.metrics.api.dto.TriggerCallbackDTO;
import com.yelink.metrics.api.dto.common.CommonMaterialEntity;
import com.yelink.metrics.api.time.DailyVO;
import com.yelink.metrics.api.time.MonthlyVO;
import com.yelink.metrics.api.time.WeeklyVO;

import java.util.Collection;
import java.util.List;

/**
 * 指标引用的服务
 * @author idea
 */
public interface MetricsApi {

    /**
     * 触发回调
     * @param o 入参
     */
    void triggerCallback(TriggerCallbackDTO o);

    /**
     * 批量新增/更新 表字段
     * @param dto 表字段集合
     */
    void refreshMetrics(MetricsUpsertDTO dto);

    /**
     * 获取每日的时间参数
     * @return 时间参数
     */
    DailyVO getDaily();
    /**
     * 获取每周的时间参数
     * @return 时间参数
     */
    WeeklyVO getWeekly();
    /**
     * 获取每月的时间参数
     * @return 时间参数
     */
    MonthlyVO getMonthly();

    /**
     * 获取物料相关属性
     * @param materialCodes 物料编码
     * @return CommonMaterialEntity 物料
     */
    Collection<CommonMaterialEntity> getCommonMaterialEntitys(List<String> materialCodes);
}
